Always produce artifact messages
This changes `artifact` messages in several ways:
* They are produced even for fresh builds
* They used the path after hard linking (@jsgf talked about it in the end of https://github.com/rust-lang/cargo/pull/3319#issuecomment-
263975431)
* Don't produce filenames if the compiler has not actually produced the binaries (`-Z-no-trans`).